﻿//Dùng tại: frmBienDongDlyCap2

using System;
using System.Data.SqlClient;
using System.Data;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using DevExpress.XtraReports.UI;

using prjKQXS_DLL.Hop_dong;
using prjKQXS_DLL.Dal;
using prjKQXS_DLL;

namespace prjKQXS_Report.Hop_dong
{
    public partial class rptBienDongDaiLy : XtraReport
    {
        dsReports dsReports1 = new dsReports();

        string form = "";
        int nam = 0;
        int thang = 0;
        int denthang = 0;

        int TongDauThang = 0;
        int TangTrongThang = 0;
        int GiamTrongThang = 0;

        public rptBienDongDaiLy(string form, int nam, int thang, int denThang)
        {
            InitializeComponent();

            this.form = form;
            this.nam = nam;
            this.thang = thang;
            this.denthang = denThang;

        }

        private void rptBienDongDaiLy_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e)
        {
            if (thang == denthang)
                lblNgaythang.Text = string.Format("Tháng {0} Năm {1}", thang, nam);
            else
                lblNgaythang.Text = string.Format("Từ tháng {0}  đến tháng {1} năm {2}", thang, denthang, nam);

            if (pTenDV.Value != null)
                lblDonvi.Text = "PHÒNG XSKT " + pTenDV.Value;

            xrlblNgay.Text = string.Format("Ngày {0} tháng {1} năm {2}", DateTime.Now.ToString("dd"), DateTime.Now.ToString("MM"), DateTime.Now.ToString("yyyy"));

            Report_DAL report_dal = new Report_DAL();
            dsReports1 = report_dal.reportDungChung(dsReports1);

            xuly();
        }

        #region cls event --------------------------------------------
        private void cls_OnAction(SqlException e)
        {
            cls_OnError(e);
        }

        private void cls_OnError(Exception e)
        {
            XtraMessageBox.Show("Một lỗi chưa được xử lý đã xảy ra. Chi tiết lỗi: \n" + e.Message, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error);
            this.CloseRibbonPreview();
        }
        #endregion ---------------------------------------------------

        private void xuly()
        {
            clsBienDongDL cls = new clsBienDongDL();
            cls.OnAction += new clsBienDongDL.OnActionHandler(cls_OnAction);
            cls.OnError += new clsBienDongDL.OnErrorHandler(cls_OnError);

            DataTable dt = cls.loadData_DV(thang, denthang, nam, Convert.ToChar(pMaDV.Value));
            dsReports1.Tables.Remove("rptBiendongdlCap2");
            dsReports1.Tables.Add(dt);
            this.DataSource = dsReports1;
            this.DataMember = "rptBiendongdlCap2";


            DateTime CuoiThangTruoc = DateTime.Now;
            int namM = 0;
            if (thang == 1)
            {
                namM = nam - 1;
                thang = 12;
                CuoiThangTruoc = clsCommon.maxNgay(namM, thang);
            }
            else
            {
                namM = nam;
                CuoiThangTruoc = clsCommon.maxNgay(namM, thang - 1);
            }

            //Tính tổng số đại lý hiện có trước khoảng thời gian đã chọn
            TongDauThang = cls.HD_DauThang(Convert.ToChar(pMaDV.Value), CuoiThangTruoc);
            xrtcTongDauThang.Text = TongDauThang + " đại lý";
            //----------------------------------------------------------
        }

        int stt = 0;
        private void Detail_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e)
        {
            stt++;
            lblSTT.Text = stt.ToString();

            TangTrongThang += GetCurrentColumnValue("So_HD") != DBNull.Value? 1 : 0;
            GiamTrongThang += GetCurrentColumnValue("So_HD2") != DBNull.Value ? 1 : 0;
        }

        private void ReportFooter_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e)
        {
            int TongCuoiThang = TongDauThang + TangTrongThang - GiamTrongThang;
            xrtcDaiLyCuoiThang.Text = TongCuoiThang.ToString() + " đại lý";
        }
    }
}
